<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function Point(x, y){
    this.x = x;
    this.y = y;
}

Point.prototype.distance = function (other){
    return Math.hypot(this.x - other.x, this.y - other.y)
}

function Circle(x, y, r){
    Point.call(this, x, y);
    this.r = r;
}
Circle.prototype = new Point(0, 0);
Circle.prototype.area = function (){
    return Math.PI * this.r * this.r;
}
//---
function Cylinder(x, y, r, h){
    Circle.call(this, x, y, r);
    this.h = h;
}
Cylinder.prototype = new Circle(0, 0, 0)
Cylinder.prototype.volume = function (){
    return this.area() * this.h;
}

var cy = new Cylinder(0, 0, 10, 100);
console.log(cy.area())
console.log(cy.volume());
</script>
</body>
</html>
<!--
    作者,：李振超  2017年8月18日09:24
    a: 设计构造函数表示二维平面的点Point。  应该有属性 x，y坐标。
        提供一个可以计算两个点距离的方法。
    b: 设计构造函数表示二维的圆Circle，提供周长和面积
    
   c: 设计构造函数表示圆柱体Cylinder，提供体积的功能
   
   d: 分别使用原型继承和构造函数借调的方式来完成继承。
-->